みなさんへの告知板


オンラインゲームからは離れました。これからはリアルょぅι゛ょで頑張ろうと思います


ミジンコゼミナール


ネットゲーム解析初心者向け講座、ミジンコゼミナール 開講!

多重起動、窓化の基礎をしらんやつは見ておけ。
読んでも理解できないやつは解析以前の問題だから文句いうな('A`)

ミジンコゼミナール:ネットゲーム解析講座一覧
1日目:入学/必要な教材 2日目:基本的なアセンブリ言語
3日目:Ollydbg の操作方法と演習 4日目:多重起動1(FindWindow)
5日目:多重起動2(CreateMutex) 6日目:多重起動3(EnumWindows、その他の方法)
7日目:ウィンドウについて
8日目:窓化(D8) 9日目:窓化(D9)
10日目:DLL について 11日目:何か作ってみよう
12日目:試験 13日目:プレゼント

2006年10月30日


気まぐれ by MicMac

ミジンコゼミの授業内容に何を取り入れようかと考えてみた。
基本はみんなが知りたがること、どのネトゲでも話題にのぼる話が
いいんだろうなーとか思ったりしながらリサーチしていた。


そんな中、とある MicMac スレでこんな発言があるのに気づく。


>窓化できねぇーや orz


がんばれ!お前たちがんばれ!!窓化に向けてがんばれ!!!
と心の中でつぶやいてもしょうがいないので、ちょっとだけ
クライアントソフトを見てみた。
そして更に心の中でつぶやいてみる。


4**氏へ
多分 CreateWindow や MoveWindow の処理までしか解析してないと思われ。
(もっと先まで解析してたらゴメンナサイ。てかそしたら出来てるか…)

DirectX を使用しているゲームといえど確かに CreateWindow は使っている。
だが CreateWindow とかその他もろもろはあくまで DirectX の下地なだけだ。

つまり、CreateWindow ⇒ Direct3DCreate9 で オブジェクト作成
⇒ DirectX 用の関数やら CreateDevice やらで画面設定(フルスクリーン)
という流れでゲーム画面の全体表示をやっている。
だから Direct3DCreate9 以降の処理を見なきゃダメっぽ。

といっても Direct3DCreate9 が実行される処理までデバッグするには
nPro(GameGuard)が起動しないようにしなきゃいけない。
まぁ、CreateProcess をチェックしてればどうすればいいか分かるはず。

ちょっと話がそれるけど、自分でプログラム作れるなら GameGuard に渡される
パラメータをつかって GameGuard の各種ファイルを実行形式にしてみるのも面白いかも。
あー、あと CreateFile らへん見てたりすると更に夢が広がりまくリング。


話を戻して最後に一言。
nPro 外したら Direct3DCreate9 から CreateDevice の間の処理、というか
使われる値(構造体だね)をよーく見てみれば夢叶うかもよ。

じゃあガンバレ('A`)ノシ

00809869 |. 6A 20 PUSH 20
0080986B |. E8 F2DF0C00 CALL ; Direct3DCreate9 呼び出し。



00809914 |. 51 PUSH ECX
00809915 |. FF52 40 CALL DWORD PTR DS:[EDX+40] ;CreateDevice 関数呼び出し


この記事へのコメント
408は俺だ orz
頑張ってみるよ
Posted by 408(ミジンコ) at 2006年11月04日 17:48
ちょwおまww
がんばれ〜!
Posted by sp at 2006年11月04日 20:52
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。